﻿using System.Data.Entity;

namespace PraceDyplomowe2.Models
{
    public class PraceDyplomoweEntities : DbContext
    {
        public PraceDyplomoweEntities()
            : base("name=DefaultConnection")
        {
        }
        public DbSet<PoziomStudiow> PoziomyStudiow { get; set; }
        public DbSet<Rola> Role { get; set; }
        public DbSet<StatusPromotor> StatusyPromotor { get; set; }
        public DbSet<StatusStudent> StatusyStudent { get; set; }
        public DbSet<Temat> Tematy { get; set; }
        public DbSet<Wydzial> Wydzialy { get; set; }
        public DbSet<KierunekStudiow> KierunkiStudiow { get; set; }
        public DbSet<UserProfile> UserProfiles { get; set; }
		public DbSet<Publikacja> Publikacje { get; set; }
		public DbSet<Bibliografia> Bibliografie { get; set; }

	    protected override void OnModelCreating(DbModelBuilder modelBuilder)
		{
			modelBuilder.Entity<Temat>()
				.HasRequired(t => t.Promotor)
				.WithMany(p => p.Tematy)
				.Map(m => m.MapKey("PromotorId"));

			modelBuilder.Entity<Publikacja>()
				.HasRequired(p => p.Promotor)
				.WithMany(p => p.Publikacje)
				.Map(m => m.MapKey("PromotorId"));

			modelBuilder.Entity<Temat>()
				.HasOptional(t => t.Student)
				.WithOptionalDependent(s => s.ZapisanyNaTemat)
				.Map(m => m.MapKey("StudentId"));

			modelBuilder.Entity<Temat>()
				.HasMany(t => t.Bibliografie)
				.WithRequired(b => b.Temat)
				.WillCascadeOnDelete();
		}
    }

}